package com.library.mapper;

import com.library.pojo.entity.LibraryBooks;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 图书表Mapper接口
 */
public interface BookMapper {

    /**
     * 查询图书列表
     * @param offset 偏移量
     * @param pageSize 每页数量
     * @return 图书列表
     */
    List<LibraryBooks> selectBookList(@Param("offset") int offset,
                                      @Param("pageSize") int pageSize,
                                      @Param("bookId") Integer bookId,
                                      @Param("name") String name,
                                      @Param("author") String author,
                                      @Param("publisher") String publisher);

    /**
     * 书名模糊查询
     * @param bookName 书名
     * @return 图书列表
     */
    List<LibraryBooks> selectBookByName(String bookName);

    /**
     * 根据图书id查询图书
     * @param bookId 图书id
     * @return 图书
     */
    LibraryBooks selectBookById(Integer bookId);

    /**
     * 添加图书
     * @param libraryBooks 图书
     * @return 添加结果
     */
    int insertBook(LibraryBooks libraryBooks);

    /**
     * 修改图书
     * @param libraryBooks 图书
     * @return 修改结果
     */
    int updateBook(LibraryBooks libraryBooks);

    /**
     * 删除图书
     * @param bookId 图书id
     * @return 删除结果
     */
    int deleteBook(Integer bookId);

    /**
     * 查询图书数量
     * @return 图书数量
     */
    int selectBookCount();
}
